Really Simple Syndication (“RSS”) is a family of XML formats which are used to publish frequently updated information on internet sites, often referred to as a feed. ATOM syndication format is a standardized XML format for publishing feeds. Both RSS and ATOM use metadata containing specific information about the content of the feed.
Feeds are used to update subscribing clients with current information organized as a list of items which are tagged with unique identifiers such that the client can easily identify the new information in each successive feed. A typical example is a web page operated by a news organization. New articles are added to the web page, hosted by a server, throughout the day. User clients can return to the web page displaying the articles and search for new ones, or user clients can subscribe to the feed which provides the user client with a listing of the current articles tagged in a way that makes it easy to identify those that have been added. The feed may actually contain the whole article, a description, the authors name, a date, and/or other metadata along with a link to the article body. The subscription can be set up to broadcast, or push the feed to the user client, or the subscription can be set up for the user client to pull the feed from the news organization's server.
A subscriber views the feed in a reader which may be a simple browser web page that shows the feed in a user friendly fashion. The feed is usually displayed in the reader with several frames allowing the user to scroll through the list of contained items and view the item details. Typically, feed readers are modules that run in conjunction with an Internet browser since the item detail often contains HyperText Markup Language (HTML) formatted information. HTML is the predominant language used for creating web pages.
Feeds can contain metadata describing the content of the feed. This metadata can be used to customize feed subscriptions. In the case of the news feed above, the metadata can include keywords related to the article. Subscribers can specify what type of news they want included in their subscription. For example, a subscriber might only want news articles about NASCAR and IBM. The subscriber will only be notified of articles containing the desired keywords.
Feeds work for both synchronous and asynchronous interactions. A synchronous interaction occurs between a client and a server in real-time. An asynchronous interaction occurs between client and server at different times such as when the client goes offline, then re-syncs the next time the client connects.
Many business operations are now conducted using synchronous interactions, such as exchange-based e-mail, and web-based applications. With synchronous interactions, business operations can be conducted at a centralized server. A bulk of the data can be stored on the centralized server. Centralized computing creates efficiencies and gives the business better control over access to data. One efficiency gained by centralized computing with synchronous interaction is the ability to deploy inexpensive thin client user interfaces.
A thin client is a device using a client-server model where the client acts primarily as a local user interface that displays the results of operations that are performed on a remote server. One example of a thin client is using a web-based application with a web browser on the client. Another example is using a dumb terminal connected to a corporate network. A constant, uninterrupted connection to the Internet or a local network is required for synchronous operations with a thin client.
Asynchronous operations are usually associated with a rich client capable of performing operations independently from the server. A rich client (also called a fat or thick client) is a device using a client-server model where the client is capable of performing a bulk of processing operations locally such as a PC or laptop. The rich client has duplicate copies of files and applications available on the server. Rich client operations generally occur on the local client rather than at the server, although the server might get updated at a later time. Asynchronous operations are useful for clients that do not have constant access to the Internet or a corporate network.
In recent years, businesses have started using a Service-Oriented Architecture (SOA). Rather than a traditional architecture using tightly coupled application components where each component has knowledge of the details of those with which it interacts, SOA applications are built on independent services that can be accessed without knowledge of their underlying implementation. SOA is implemented using a wide range of technologies, including: Representational State Transfer (REST), Remote Procedure Call (RPC), Distributed Component Object Model (DCOM), Common Object Request Broker Architecture (CORBA), and Web Services. These different services inter-operate based on a formal definition such as Web Services Description Language (WSDL) that is independent of the underlying platform. Each web service programming language specifies requests and responses in a neutral fashion to ensure inter-operability. One such neutral request and response protocol is Simple Object Access Protocol (SOAP) for exchanging XML-based messages.
Most web service applications rely on some kind of user interaction. In the traditional synchronous web based case, the user interaction is done using HTML forms presented by the web server which would return data entered or modified by the user in an HTML message to the server. One problem in using HTML forms is maintaining a rich user experience, such as instantly validating user input, or modifying the choices presented as form information is entered. Many schemes, such as client side scripting and browser plug-in extensions have been tried to provide this rich user experience. A recent technology called “XForms” addresses the rich user experience problem with an interactive form that uses a Model-View-Controller (MCV) approach. The “model” describes the form data, constraints upon that data, and submissions. The “view” describes what controls appear in the form, how they are grouped together, and what data they are bound to. The “controller” responds to events performed by the user, such as displaying a new view when a user enters data into the form. While no widely used web browsers currently support XForms natively, XForm support is available via browser extensions and will be adopted in future offerings.
As users move away from the traditional office setting into a mobile way of doing business with SOA, it becomes advantageous to allow users to asynchronously interact with web service driven business processes. Asynchronous interactions allow the user to continue conducting business, even when the user cannot access the remote server via the Internet or local network. At the same time the mobile user should still have the same efficiencies provided by a thin-client model where the bulk of the processing still occurs on the corporate server, not the local client. A need exists for a client interface that allows asynchronous, disconnected operation without requiring a copy of the web service application on the client.